/*
 * Copyright (C) 2015-2019 Alibaba Group Holding Limited
 */

#ifndef CO_IO__H_
#define CO_IO__H_

/* Object Dictionary List */
#define CO_INPUT_INDEX          0x6400
#define CO_INPUT_SUB_INDEX_COUNT   0
#define CO_INPUT_SUB_INDEX_SET     1

#define CO_OUTPUT_INDEX          0x6200
#define CO_OUTPUT_SUB_INDEX_COUNT   0
#define CO_OUTPUT_SUB_INDEX_SET     1
#define CO_OUTPUT_SUB_INDEX_DEFAULT 2

#define GPIO_OUTPUT_COFIRM_PDO_IDX   pdo_idx_2


#define GPIO_INPUT_TX_PDO_IDX pdo_idx_1
#define GPIO_OUT_RXPDO_IDX    pdo_idx_1

/* support 8*8 output channel in max */
#define CO_IO_OUTPUT_DATA_SIZE 8

typedef enum {
    shine_type_ok       = 0,
    shine_type_error,
    shine_type_indicate,
    shine_type_fatal_error,
    shine_type_size,
    shine_type_none     = 255,
} shine_type_t;

#ifdef __cplusplus
extern "C" {
#endif
int32_t co_io_init(const uint8_t port);

void board_indicator(const shine_type_t type);

#ifdef __cplusplus
}
#endif

#endif /* CO_IO__H_ */
